package com.joker.gateway.config;

import java.io.File;

/**
 * @author lemon
 * @date 2024/12/10 16:50
 **/
public class ChangeName {
    public static void main(String[] args) {
        File file = new File("C:/Users/lemon/Desktop/code");
        change(file,"joker","code");
    }


    public static void change(File file, String newName, String oldName) {
        // 如果这是一个目录
        if (file.isDirectory()) {
            // 尝试重命名目录本身（在子文件和子目录已经处理之后）
            String absPath = file.getAbsolutePath();
            if (absPath.contains(oldName)) {
                String newPath = absPath.replace(oldName, newName);
                // 使用File构造函数来确保路径分隔符的正确性（虽然在这里可能不是必需的，但作为一个好习惯）
                File destDir = new File(newPath.replace("/", File.separator));
                boolean success = file.renameTo(destDir);
                System.out.println("Renamed directory: " + file.getName() + " to " + destDir.getName() + " - " + success);
            }
            File[] files = file.listFiles();
            if (files != null) {
                for (File f : files) {
                    change(f, newName, oldName);
                }
            }
        } else {
            // 如果这是一个文件，直接尝试重命名
            String absPath = file.getAbsolutePath();
            if (absPath.contains(oldName)) {
                String newPath = absPath.replace(oldName, newName);
                // 同样，使用File构造函数来确保路径分隔符的正确性
                File destFile = new File(newPath.replace("/", File.separator));
                boolean success = file.renameTo(destFile);
                System.out.println("Renamed file: " + file.getName() + " to " + destFile.getName() + " - " + success);
            }
        }
    }

}
